<?php
require 'lib.php';

$username = P('username');
$password = P('password');
$password2 = P('password2');

//1.验证规则
if(empty($username) || empty($password)) {
    error('用户名或密码不能为空');
}

if($password != $password2) {
    error('两次密码输入不同');
}

//2.判断是否存在该用户
$conn = redis_conn(); //redis连接资源
$user_id = $conn->get('user:username:'.$username.':userid');
//如果存在用户名，直接输出
if($user_id) {
    error('用户名' . $username . ', 已经被注册');
}

//3.插入数据操作
//3.1插入数据之前，需要获取一个自增的id 主键
$id = $conn->incr('global:user'); //自增的id

$rs1 = $conn->set('user:userid:'.$id.':username', $username);
$rs2 = $conn->set('user:userid:'.$id.':password', md5($password) );
$rs3 = $conn->set('user:username:'.$username.':userid', $id);

if($rs1 && $rs2 && $rs3) { //入库成功
    //4.自动登录操作
    setcookie('userid', $id);
    setcookie('username', $username);

    //5.注册成功后，新增链表操作
    $conn->lPush('newuserlist', $id);
    $conn->lTrim('newuserlist', 0, 49); //保留50人
    header('Location: home.php');exit(0);
}else {
    error('用户注册失败，请稍后重试或联系网站管理员');
}

